import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ControladorInterno implements ActionListener {
	
	private Ventana ventana;
	private BufferedReader reader;
	private FileReader fichero;
	
	//OK Constructor copia del controlador para ventanas internas
	public ControladorInterno(Ventana interiorB){
		this.ventana=interiorB;
	}	
	
	//OK Ventana Donde mostramos el resultado del texto
	@SuppressWarnings("deprecation")
	public void VentanaTextoS(String texto, String nombre){
		JFrame ventanaFinal=new JFrame();
		ventanaFinal.getContentPane().setLayout(new GridLayout(15,1));
		
		int j=0;
		for(int i=0;i<texto.length();i++){			
			if(texto.charAt(i)=='\n'){				
				String aux=texto.substring(j, i);
				JLabel label=new JLabel(aux);
				j=i;
				ventanaFinal.getContentPane().add(label);				
			}			
		}
		
		ventanaFinal.setTitle(nombre);
		ventanaFinal.setSize(300,300);
		ventanaFinal.show();
	}
	
	
	//OK Ventana Donde mostramos el resultado de tokens
	@SuppressWarnings("deprecation")
	public void VentanaTextoT(String texto, String nombre){
		JFrame ventanaFinal=new JFrame();
		ventanaFinal.getContentPane().setLayout(new GridLayout(15,1));
		
		int j=0;
		for(int i=0;i<texto.length();i++){			
			if(texto.charAt(i)==' '){				
				String aux=texto.substring(j, i);
				JLabel label=new JLabel(aux);
				j=i;
				ventanaFinal.getContentPane().add(label);				
			}			
		}
		
		ventanaFinal.setTitle(nombre);
		ventanaFinal.setSize(300,300);
		ventanaFinal.show();
	}
	
	
	//OK Gestion de Eventos De Ventanas

	@Override
	public void actionPerformed(ActionEvent e){
		// TODO Auto-generated method stub
		String nombre=ventana.combo.getSelectedItem().toString();
		String salida=" ";
		String linea = "";		
		
		if ("tokens".equals(e.getActionCommand())) {	
			try {
				fichero= new FileReader(nombre);
				reader = new BufferedReader(fichero);
				
				while ((linea = reader.readLine())!=null) {
					
					salida=salida+linea+' ';
					linea="";
					
				}
				fichero.close();
			} catch (FileNotFoundException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}				
			VentanaTextoT(salida,nombre);
			
		}else {
			
			if("seleccion".equals(e.getActionCommand())){
				
				try {
					fichero= new FileReader(nombre);
					reader = new BufferedReader(fichero);
										
					while ((linea = reader.readLine())!=null) {
						
						salida=salida+linea+"\n";
						linea="";
						
					}
					
								
					fichero.close();
				} catch (FileNotFoundException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}		
				VentanaTextoS(salida,nombre);
				
			}				
		}
	}
}
